package structure;

import java.util.ArrayList;

/*
 * verranno memorizzate le produzioni sotto forma di stringa
 * nel formato S->A
 */

public class FIFO {
	
	private 
		ArrayList<String> fifo;
	
	public FIFO(){
		
		this.fifo= new ArrayList<String>();
	}
	
	public void push(String s){
		
		this.fifo.add(s);
	}
	
	public String pop(){
		
		return this.fifo.remove(0);
	}
	
	public String[] popSplit(){
		
		String fifo0= this.pop();
		
		return this.splitLeftByRight(fifo0);
	}
	
	public boolean contains(String s){
		
		return this.fifo.contains(s);
	}
	
	public boolean isEmpty(){
		
		return this.fifo.isEmpty();
	}
	
	public String[] splitLeftByRight(String toSplit){
		
		String[] toReturn= {toSplit.substring(0, 1), toSplit.substring(3)};
		return toReturn;
	}
	
	public void printIt(){
		
		System.out.print("fifo: ");
		for(String s : this.fifo){
			
			System.out.print(s + ", ");
		}
		System.out.println("");
	}

}
